package com.bdqn.spark.chapter05

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Spark01_RDD_Memory1 {
  def main(args: Array[String]): Unit = {

    // 获取Spark程序的运行环境
    val conf: SparkConf = new SparkConf()
      .setMaster("local[*]")
      .setAppName("RDD-Memory")
    val sc: SparkContext = new SparkContext(conf)

    // 从内存中读取数据
    val source: List[Int] = List(1, 2, 3, 4)

    // 通过调用makeRDD方法，把内存数据转换为 RDD对象
    val sourceRDD: RDD[Int] = sc.makeRDD(source)

    // 在RDD中，算子分成两种：转换算子和行动算子
    // 行动算子，可以把RDD转换成Task，程序才能运行
    val result: Array[Int] = sourceRDD.collect
    result.foreach(println)

    sc.stop()
  }
}
